package day8.maptest;

import org.junit.Test;

import java.util.HashMap;

/**
 * @author joker
 * @date 2022/4/18 0018 - 14:50
 */
public class Maptest {
    public static void main(String[] args) {
        HashMap<Object, Object> hashMap = new HashMap<>();
//        hashMap.put("1","jack");
//        System.out.println(hashMap.put("1", "mary"));
//
//        hashMap.put("2","jack");
//        System.out.println(hashMap.entrySet());
//        System.out.println(7&3);
//        System.out.println(Integer.toString(16,2));
//        System.out.println(Integer.toString(32,2));
//        String str="1";
//        int h;
//        int hash = (h = str.hashCode()) ^ (h >>> 16);
//        System.out.println(hash);
//        System.out.println(Integer.toString(hash, 2));
//        String s1="Aa";
//        String s2="BB";
//        System.out.println(s1.hashCode());
//        System.out.println(s2.hashCode());
        hashMap.put("Aa","jack");
        System.out.println(hashMap);
        System.out.println(hashMap.get("Aa"));
        hashMap.put("BB","Mary");
        System.out.println(hashMap);
        System.out.println(hashMap.get("BB"));
        

    }

    @Test
    public void test1(){
        String s="1";
        int h;
        int hash = (h = s.hashCode()) ^ (h >>> 16);
        System.out.println(hash);
        System.out.println(1^10);
    }
    @Test
    public void test2(){
        /**
         * 五、Map中定义的方法：
         *  添加、删除、修改操作：
         *  Object put(Object key,Object value)：将指定key-value添加到(或修改)当前map对象中
         *  void putAll(Map m):将m中的所有key-value对存放到当前map中
         *  Object remove(Object key)：移除指定key的key-value对，并返回value
         *  void clear()：清空当前map中的所有数据
         *  元素查询的操作：
         *  Object get(Object key)：获取指定key对应的value
         *  boolean containsKey(Object key)：是否包含指定的key
         *  boolean containsValue(Object value)：是否包含指定的value
         *  int size()：返回map中key-value对的个数
         *  boolean isEmpty()：判断当前map是否为空
         *  boolean equals(Object obj)：判断当前map和参数对象obj是否相等
         *  元视图操作的方法：
         *  Set keySet()：返回所有key构成的Set集合
         *  Collection values()：返回所有value构成的Collection集合
         *  Set entrySet()：返回所有key-value对构成的Set集合
         *
         *  *总结：常用方法：
         *  * 添加：put(Object key,Object value)
         *  * 删除：remove(Object key)
         *  * 修改：put(Object key,Object value)
         *  * 查询：get(Object key)
         *  * 长度：size()
         *  * 遍历：keySet() / values() / entrySet()
         */
        HashMap hashMap = new HashMap();
        hashMap.put(1,"jack");
        hashMap.put(2,"tom");
        HashMap<Object, Object> map2 = new HashMap<>();
        map2.put(3,"hack");
        map2.putAll(hashMap);
        System.out.println(map2);
    }
}
